# -*- coding: UTF-8 -*- #
"""
-------真正的勇士， 敢于直面惨淡的Warning、 敢于正视淋漓的Error-----
@author : 贾鹏博
@file : 4、Capability.py
@time : 2022/5/20 12:10
"""

"""
功能  ： 配置 Appium 会话，告诉 Appium 服务器需要自动化的平台的应用程序
形式 ： 键值对的集合，键对应设置的名称，值对应设置的值
主要分为三部分 ：
    公共部分
    ios 部分
    android 部分
    
公共部分参数配置
platformName     使用手机的操作系统          iOS、Android、FirefoxOS
platformVersion  手机操作系统的版本          例如 6.0.1
deviceName       使用的手机或模拟器类型       Android、iPhone
automationName   使用那个自动化引擎           android 默认使用 uiautomator2  .  ios 默认使用 XCUTest
# ========================================  =============================
noReset          在当前 session 下，不会重置应用的状态，默认为 false          true  false
udid             连接真实设备的唯一设备编号（Unique device identifer）     例如 1ae203187fc012g

Android 部分特有参数配置
appActivity   Activity 的名字是指从你的包中所要启动的 Android acticity                 MainActivity,.Settings
appPackage    运行的 Android 应用的包名       com.example.android.myApp   .com.android.setting
appMaitActivity   用于等待启动的 Android Activity名称   SplashActivity
unicodeKeyboard   应用 Unicode 输入，默认为 false     true/false
resetKeyboard                                      true/false
# ========================================  =============================
dontStopAppOnReset   首次启动的时候，不停止 app       true/false
skipDeviceInitialization   跳过安装，权限设置等操作    true/false

ios独有
bundleID   被测应用的 bundle ID   == 安卓的包       例如 io.appium.TestApp
autoAcceptAlerts  当 ios 的个人信息访问警告（如位置，联系人，图片）出现时，自动选择接受（Accept） 默认为 false     true/false
showIOSlog    是否在 appium  日志中显示从设备捕获的任何日志，默认 false     true/false


Desire capability 参数示例
{
    "platformName" : "android",
    "deviceName" : "emulator-5554",
    "appPackage" : "io.appium.android.apis",
    "appActivity" : ".ApiDemos"
    
}

{
    "noReset" : "true", //不清空缓存
    "dontStopAppOnReset" : "true", //首次启动的时候，不停止 app
    "skipDeviceInitialization" : "true", //跳过安装，权限设置等操作
    "unicodeKeyBoard" : "true"  //输入中文  
}

"""
